class Stack{
    constructor(){
        this.items = {};//栈的数据
        this.count = 0; //记录栈里元素个数，当作健
    }

    //添加
    push(element){
        this.items[this.count] = element;
        this.count++;
    }

    //获取元素的个数
    size(){
       return this.count
    }

    //判断当前栈是否为空
    isEmpty(){
        return this.count === 0
    }

    //清除栈里所有的元素
    clear(){
        this.items = {};
        this.count = 0;
    }
    
    //移除栈顶的元素
    pop(){
        if(this.count === 0){
            return ''
        }
        let top = this.items[this.count-1];
        delete this.items[this.count-1];
        this.count--;
        return top
    }

    //栈顶的元素
    peek(){
        return this.items[this.count-1]
    }

    hui(str){ //abba
        //入栈
        let arr = str.split(''); //[a,b,b,a]
        for(let i = 0;i<arr.length;i++){
            this.push(arr[i]); 
        }

        let huiStr = '';
        let items = {...this.items};
        // console.log(items)
        //出栈
        for(let key in items){
            huiStr += this.pop();
        }

        console.log(huiStr)
        return str === huiStr
    }
}


let s = new Stack();



console.log(s)

console.log(s.hui('abaq'))

// s.push('a');

// s.push('b');

// console.log(s.peek())

// // s.clear()

// // console.log(s.isEmpty())

// console.log(s)


// function tenTwo(num){
//     let str = '' //存二进制的数据
//     let s = new Stack();
//     while(num > 0){
//         let rem = num%2;
//         s.push(rem);
//         num = Math.floor(num/2);
//         console.log(s);
//     }
//     console.log(s);

//     let count = s.size();//当前栈的个数
//     for(let i = 0;i<count;i++){
//         str += s.pop();
//     }

//     return str //转换成二进制的数据
// }

// console.log(tenTwo(10))


// 作业：

// 1.提交git + 录屏


// 2.历届周考二题完善


// 3.面试题

// 4.录答辩录屏  传到百度网盘